package byx.container.annotation.annotation;

import byx.container.annotation.extension.impl.CustomInjector;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 自定义注入逻辑
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.PARAMETER)
public @interface Inject {
    /**
     * CustomInjector实现类
     */
    Class<? extends CustomInjector> value();

    /**
     * 是否从容器中获取CustomInjector实现类
     * 为true表示从容器中获取类型为value的对象
     * 为false表示直接调用默认构造函数创建CustomInjector
     */
    boolean fromContainer() default false;
}
